ヘッダーをスキップ
Oracle TimesTen In-Memory Database C開発者およびリファレンス・ガイド
リリース6.0
B25764-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

データ変換

TimesTenでは、NCHAR型の双方向の変換に対するサポートが制限されています。サポートされている変換(バインディング)は、次の型の組合せです。

SQL型
C型
SQL_WCHAR
SQL_C_WCHAR 
SQL_WVARCHAR
SQL_C_DEFAULT
SQL_C_BINARY 

SQLからCへのデータ変換

SQL_WCHAR、SQL_WVARCHARからSQL_C_WCHAR、SQL_C_BINARY

SQLからC: 文字

C型識別子(TargetType)

テスト
TargetValuePtr1
*StrLen_or_IndPtr2
SQLSTATE
SQL_C_WCHAR
データのバイト長 < バッファ長
データ
データ長(バイト)
N/A
 
データのバイト長 >= バッファ長
切り捨てられたデータ†
データ長(バイト)
01004
SQL_C_BINARY
データのバイト長 <= バッファ長
データ
データ長(バイト)
N/A
 
データのバイト長 > バッファ長
切り捨てられたデータ‡
データ長(バイト)
01004
1データは文字(2バイト)境界で切り捨てられます。
2データはバイト境界で切り捨てられます。バッファ長が奇数の場合、文字の一部が返されます。

SQLBindColまたはSQLGetDataのfcType引数に、SQL_WCHARまたはSQL_WVARCHARから前述したODBC Cデータ型以外のODBC Cデータ型への変換を指定する識別子が含まれている場合、SQLFetchまたはSQLGetDataは、SQLSTATE S1C00(Driver not capable)を返します。

他のSQL型からSQL_C_WCHARに変換しようとすると、SQLSTATE 07006(Restricted data type attribute violation)が返されます。

CからSQLへのデータ変換

SQL_C_WCHARからSQL_WCHAR、SQL_WVARCHAR

CからSQL: 文字

SQL型識別子
テスト
SQLSTATE
SQL_WCHAR
データの文字長 <= 列の長さ
N/A
SQL_WVARCHAR
データの文字長 > 列の長さ
01004

SQL_C_BINARYからSQL_WCHAR、SQL_WVARCHAR

CからSQL: バイナリ

SQL型識別子
テスト
SQLSTATE
SQL_WCHAR SQL_WVARCHAR
データの文字長 <= 列の文字長†
N/A
 
データの文字長 > 列の文字長
01004

注意: データには、完全な2バイト文字が含まれている必要があります。SQLSTATE 01004(Data truncated)が返された場合は、後続の一部の文字が削除されます。

SQLBindParameterのfcType引数に、SQL_C_WCHARおよびSQL_C_BINARY以外の識別子、あるいはfSQlTypeのSQL_WCHARまたはSQL_WVARCHARが含まれている場合、SQLBindParameterまたはSQLExecuteのいずれかがSQLSTATE S1C00(Driver not capable)を返します。

SQL_C_WCHARからSQL_WCHARまたはSQL_WVARCHAR以外のSQL型に変換しようとすると、SQLSTATE 07006(Restricted data type attribute violation)が返されます。